package com.wdcloud.netlibrary.deliver;


import com.wdcloud.netlibrary.callback.BaseCallback;
import com.wdcloud.netlibrary.callback.DownloadProgressCallback;
import com.wdcloud.netlibrary.callback.NetWorkCallback;

/**
 */

public interface IDeliver {

    void deliverStart(final BaseCallback callback);

    <T> void deliverSuccess(final NetWorkCallback<T> callback, final T t);

    void deliverComplete(final BaseCallback callback);

    void deliverCancel(final BaseCallback callback);

    void deliverFail(final BaseCallback callback, final Exception e);

    void deliverProgress(final DownloadProgressCallback callback,
                         final long current, final long total, final int progress);
}
